#pragma once

#include <drogon/HttpController.h>

using namespace drogon;

class ScreenShot : public drogon::HttpController<ScreenShot>
{
public:
    METHOD_LIST_BEGIN
    // use METHOD_ADD to add your custom processing function here;
    ADD_METHOD_TO(ScreenShot::getScreenshotImg, "screenshot.png", Get);
    ADD_METHOD_TO(ScreenShot::getScreenshot, "screenshot", Get); 
    // METHOD_ADD(ScreenShot::your_method_name, "/{1}/{2}/list", Get); // path is /ScreenShot/{arg1}/{arg2}/list
    // ADD_METHOD_TO(ScreenShot::your_method_name, "/absolute/path/{1}/{2}/list", Get); // path is /absolute/path/{arg1}/{arg2}/list

    METHOD_LIST_END
    // your declaration of processing function maybe like this:
    void getScreenshotImg(const HttpRequestPtr& req, std::function<void (const HttpResponsePtr &)> &&callback);
    void getScreenshot(const HttpRequestPtr& req, std::function<void (const HttpResponsePtr &)> &&callback);
    // void your_method_name(const HttpRequestPtr& req, std::function<void (const HttpResponsePtr &)> &&callback, double p1, int p2) const;
};
